
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.SQLException;
import java.text.ParseException;


public class geraXML {
	
    public static void geraCard() throws IOException, SQLException, ParseException {
        FileReader reader = new FileReader("C:\\Projetos\\rok\\RagnaChart\\rosim\\datacard.txt");
        BufferedReader leitor = new BufferedReader(reader);
        StringBuffer xml = new StringBuffer();
        xml.append("<card>\n");
        int i = 0;
        for (String linha = leitor.readLine(); !linha.equals("FIM"); linha = leitor.readLine()) {
            i++;
            if (linha.equals("FIM")) {
                break;                	
            }
            if (linha.trim().equals("")) {
            	xml.append(linha + "\n");
            } else if(linha.trim().indexOf("//") == 0) {
            	xml.append("<!-- "+linha + " -->\n");
            } else {
            	linha = linha.substring(linha.indexOf("(")+1, linha.indexOf(")"));
                String[] item = linha.split(",");
                //System.out.println(item[0]);
                String name = item[0].replaceAll("\\\\'","\"");
                name = name.replaceAll("'", "");
                name = name.replaceAll("\"","'");
                xml.append("<c id=\""+i+"\" ");
                xml.append("name=\""+ name +"\" ");
                xml.append("group=\""+ item[1] +"\" ");
                String bonus = "";
                String atk = "0";
                String def = "0";
                String perDef = "0";
                String element = "0";
                String atkM = "0";
                String defM = "0";
                String perDefM = "0";
                int b = 0;
                if (Integer.parseInt(item[7]) != 0) {
                	if (Integer.parseInt(item[7]) == 1 || Integer.parseInt(item[7]) == 17 || Integer.parseInt(item[7]) == 26) {
                		atk = item[15];
                	} else if (Integer.parseInt(item[7]) == 2) {
                		def = item[15];
                	} else if (Integer.parseInt(item[7]) == 256) {
                		perDef = item[15];
                	} else if (Integer.parseInt(item[7]) == 5) {
                		atkM = item[15];
                	} else if (Integer.parseInt(item[7]) == 6) {
                		defM = item[15];
                	} else if (Integer.parseInt(item[7]) == 257) {
                		perDefM = item[15];
                	} else {
                		bonus += "    <bonus id=\""+item[7]+"\" value=\""+item[15]+"\"/>\n";
                		b++;
                	}
                }
                if (Integer.parseInt(item[8]) != 0) {
                	if (Integer.parseInt(item[8]) == 1 || Integer.parseInt(item[8]) == 17 || Integer.parseInt(item[8]) == 26) {
                		atk = item[16];
                	} else if (Integer.parseInt(item[8]) == 2) {
                		def = item[16];
                	} else if (Integer.parseInt(item[8]) == 256) {
                		perDef = item[16];
                	} else if (Integer.parseInt(item[8]) == 5) {
                		atkM = item[16];
                	} else if (Integer.parseInt(item[8]) == 6) {
                		defM = item[16];
                	} else if (Integer.parseInt(item[8]) == 257) {
                		perDefM = item[16];
                	} else {
                		bonus += "    <bonus id=\""+item[8]+"\" value=\""+item[16]+"\"/>\n";
                		b++;
                	}
                }
                if (Integer.parseInt(item[9]) != 0) {
                	if (Integer.parseInt(item[9]) == 1 || Integer.parseInt(item[9]) == 17 || Integer.parseInt(item[9]) == 26) {
                		atk = item[17];
                	} else if (Integer.parseInt(item[9]) == 2) {
                		def = item[17];
                	} else if (Integer.parseInt(item[9]) == 256) {
                		perDef = item[17];
                	} else if (Integer.parseInt(item[9]) == 5) {
                		atkM = item[17];
                	} else if (Integer.parseInt(item[9]) == 6) {
                		defM = item[17];
                	} else if (Integer.parseInt(item[9]) == 257) {
                		perDefM = item[17];
                	} else {
                		bonus += "    <bonus id=\""+item[9]+"\" value=\""+item[17]+"\"/>\n";
                		b++;
                	}
                }
                if (Integer.parseInt(item[10]) != 0) {
                	if (Integer.parseInt(item[10]) == 1 || Integer.parseInt(item[10]) == 17 || Integer.parseInt(item[10]) == 26) {
                		atk = item[18];
                	} else if (Integer.parseInt(item[10]) == 2) {
                		def = item[18];
                	} else if (Integer.parseInt(item[10]) == 256) {
                		perDef = item[18];
                	} else if (Integer.parseInt(item[10]) == 5) {
                		atkM = item[18];
                	} else if (Integer.parseInt(item[10]) == 6) {
                		defM = item[18];
                	} else if (Integer.parseInt(item[10]) == 257) {
                		perDefM = item[18];
                	} else {
                		bonus += "    <bonus id=\""+item[10]+"\" value=\""+item[18]+"\"/>\n";
                		b++;
                	}
                }
                if (Integer.parseInt(item[11]) != 0) {
                	if (Integer.parseInt(item[11]) == 1 || Integer.parseInt(item[11]) == 17 || Integer.parseInt(item[11]) == 26) {
                		atk = item[19];
                	} else if (Integer.parseInt(item[11]) == 2) {
                		def = item[19];
                	} else if (Integer.parseInt(item[11]) == 256) {
                		perDef = item[19];
                	} else if (Integer.parseInt(item[11]) == 5) {
                		atkM = item[19];
                	} else if (Integer.parseInt(item[11]) == 6) {
                		defM = item[19];
                	} else if (Integer.parseInt(item[11]) == 257) {
                		perDefM = item[19];
                	} else {
                		bonus += "    <bonus id=\""+item[11]+"\" value=\""+item[19]+"\"/>\n";
                		b++;
                	}
                }
                if (Integer.parseInt(item[12]) != 0) {
                	if (Integer.parseInt(item[12]) == 1 || Integer.parseInt(item[12]) == 17 || Integer.parseInt(item[12]) == 26) {
                		atk = item[20];
                	} else if (Integer.parseInt(item[12]) == 2) {
                		def = item[20];
                	} else if (Integer.parseInt(item[12]) == 256) {
                		perDef = item[20];
                	} else if (Integer.parseInt(item[12]) == 5) {
                		atkM = item[20];
                	} else if (Integer.parseInt(item[12]) == 6) {
                		defM = item[20];
                	} else if (Integer.parseInt(item[12]) == 257) {
                		perDefM = item[20];
                	} else {
                		bonus += "    <bonus id=\""+item[12]+"\" value=\""+item[20]+"\"/>\n";
                		b++;
                	}
                }
                if (Integer.parseInt(item[13]) != 0) {
                	if (Integer.parseInt(item[13]) == 1 || Integer.parseInt(item[13]) == 17 || Integer.parseInt(item[13]) == 26) {
                		atk = item[21];
                	} else if (Integer.parseInt(item[13]) == 2) {
                		def = item[21];
                	} else if (Integer.parseInt(item[13]) == 256) {
                		perDef = item[21];
                	} else if (Integer.parseInt(item[13]) == 5) {
                		atkM = item[21];
                	} else if (Integer.parseInt(item[13]) == 6) {
                		defM = item[21];
                	} else if (Integer.parseInt(item[13]) == 257) {
                		perDefM = item[21];
                	} else {
                		bonus += "    <bonus id=\""+item[13]+"\" value=\""+item[21]+"\"/>\n";
                		b++;
                	}
                }
                if (Integer.parseInt(item[14]) != 0) {
                	if (Integer.parseInt(item[14]) == 1 || Integer.parseInt(item[14]) == 17 || Integer.parseInt(item[14]) == 26) {
                		atk = item[22];
                	} else if (Integer.parseInt(item[14]) == 2) {
                		def = item[22];
                	} else if (Integer.parseInt(item[14]) == 256) {
                		perDef = item[22];
                	} else if (Integer.parseInt(item[14]) == 5) {
                		atkM = item[22];
                	} else if (Integer.parseInt(item[14]) == 6) {
                		defM = item[22];
                	} else if (Integer.parseInt(item[14]) == 257) {
                		perDefM = item[22];
                	} else {
                		bonus += "    <bonus id=\""+item[14]+"\" value=\""+item[22]+"\"/>\n";
                		b++;
                	}
                }
                if (!element.equals("0")) {
                	System.out.println(element);
                }
                xml.append("atk=\""+ atk +"\" ");
                xml.append("def=\""+ def +"\" ");
                xml.append("perDef=\""+ perDef +"\" ");
                xml.append("atkM=\""+ atkM +"\" ");
                xml.append("defM=\""+ defM +"\" ");
                xml.append("perDefM=\""+ perDefM +"\" ");
                String skills = "";
                int j = 0;
                int k = 0;
                for(j = 1,k=0; j <= Integer.parseInt(item[25]); j++,k++) {
                	skills += "    <skill id=\""+item[25+j+k]+"\" lvl=\""+item[25+j+k+1]+"\"/>\n";
                }
                if (b == 0 && k == 0) {
                    xml.append("/>\n");                	
                } else {
                	xml.append(">\n");
                	xml.append(bonus);
                	xml.append(skills);
                	xml.append("</c>\n");
                }
            }
        }
        xml.append("</card>\n");
        //System.out.println(xml);
        
        FileWriter xmlFile = new FileWriter("C:\\Projetos\\rok\\RagnaChart\\rosim\\datacard.xml");
        xmlFile.write(xml.toString());
        reader.close();
        xmlFile.close();
    }

    public static void geraEquip() throws IOException, SQLException, ParseException {
        FileReader reader = new FileReader("C:\\Projetos\\rok\\RagnaChart\\rosim\\dataitem.txt");
        BufferedReader leitor = new BufferedReader(reader);
        StringBuffer xml = new StringBuffer();
        xml.append("<equipment>\n");
        int i = 0;
        for (String linha = leitor.readLine(); !linha.equals("FIM"); linha = leitor.readLine()) {
            i++;
            if (linha.equals("FIM")) {
                break;                	
            }
            if (linha.trim().equals("")) {
            	xml.append(linha + "\n");
            } else if(linha.trim().indexOf("//") == 0) {
            	xml.append("<!-- "+linha + " -->\n");
            } else {
            	linha = linha.substring(linha.indexOf("(")+1, linha.indexOf(")"));
                String[] item = linha.split(",");
                String name = item[0].replaceAll("\\\\'","\"");
                name = name.replaceAll("'", "");
                name = name.replaceAll("\"","'");
                xml.append("<e id=\""+i+"\" ");
                xml.append("name=\""+ name +"\" ");
                xml.append("group=\""+ item[1] +"\" ");
                xml.append("weight=\""+ item[2] +"\" ");
                xml.append("slot=\""+ item[3] +"\" ");
                xml.append("price=\""+ item[4] +"\" ");
                xml.append("weaponLV=\""+ item[5] +"\" ");
                xml.append("requiredLV=\""+ item[6] +"\" ");
                xml.append("sex=\""+ item[23] +"\" ");
                xml.append("upgradable=\""+ item[24] +"\" ");
                String bonus = "";
                String atk = "0";
                String def = "0";
                String perDef = "0";
                String element = "0";
                String atkM = "0";
                String defM = "0";
                String perDefM = "0";
                
                int b = 0;
                if (Integer.parseInt(item[7]) != 0) {
                	if (Integer.parseInt(item[7]) == 1 || Integer.parseInt(item[7]) == 17 || Integer.parseInt(item[7]) == 26) {
                		atk = item[15];
                	} else if (Integer.parseInt(item[7]) == 2) {
                		def = item[15];
                	} else if (Integer.parseInt(item[7]) == 256) {
                		perDef = item[15];
                	} else if (Integer.parseInt(item[7]) == 3) {
                		element = item[15];
                	} else if (Integer.parseInt(item[7]) == 5) {
                		atkM = item[15];
                	} else if (Integer.parseInt(item[7]) == 6) {
                		defM = item[15];
                	} else if (Integer.parseInt(item[7]) == 257) {
                		perDefM = item[15];
                	} else {
                		bonus += "    <bonus id=\""+item[7]+"\" value=\""+item[15]+"\"/>\n";
                		b++;
                	}
                }
                if (Integer.parseInt(item[8]) != 0) {
                	if (Integer.parseInt(item[8]) == 1 || Integer.parseInt(item[8]) == 17 || Integer.parseInt(item[8]) == 26) {
                		atk = item[16];
                	} else if (Integer.parseInt(item[8]) == 2) {
                		def = item[16];
                	} else if (Integer.parseInt(item[8]) == 256) {
                		perDef = item[16];
                	} else if (Integer.parseInt(item[8]) == 3) {
                		element = item[16];
                	} else if (Integer.parseInt(item[8]) == 5) {
                		atkM = item[16];
                	} else if (Integer.parseInt(item[8]) == 6) {
                		defM = item[16];
                	} else if (Integer.parseInt(item[8]) == 257) {
                		perDefM = item[16];
                	} else {
                		bonus += "    <bonus id=\""+item[8]+"\" value=\""+item[16]+"\"/>\n";
                		b++;
                	}
                }
                if (Integer.parseInt(item[9]) != 0) {
                	if (Integer.parseInt(item[9]) == 1 || Integer.parseInt(item[9]) == 17 || Integer.parseInt(item[9]) == 26) {
                		atk = item[17];
                	} else if (Integer.parseInt(item[9]) == 2) {
                		def = item[17];
                	} else if (Integer.parseInt(item[9]) == 256) {
                		perDef = item[17];
                	} else if (Integer.parseInt(item[9]) == 3) {
                		element = item[17];
                	} else if (Integer.parseInt(item[9]) == 5) {
                		atkM = item[17];
                	} else if (Integer.parseInt(item[9]) == 6) {
                		defM = item[17];
                	} else if (Integer.parseInt(item[9]) == 257) {
                		perDefM = item[17];
                	} else {
                		bonus += "    <bonus id=\""+item[9]+"\" value=\""+item[17]+"\"/>\n";
                		b++;
                	}
                }
                if (Integer.parseInt(item[10]) != 0) {
                	if (Integer.parseInt(item[10]) == 1 || Integer.parseInt(item[10]) == 17 || Integer.parseInt(item[10]) == 26) {
                		atk = item[18];
                	} else if (Integer.parseInt(item[10]) == 2) {
                		def = item[18];
                	} else if (Integer.parseInt(item[10]) == 256) {
                		perDef = item[18];
                	} else if (Integer.parseInt(item[10]) == 3) {
                		element = item[18];
                	} else if (Integer.parseInt(item[10]) == 5) {
                		atkM = item[18];
                	} else if (Integer.parseInt(item[10]) == 6) {
                		defM = item[18];
                	} else if (Integer.parseInt(item[10]) == 257) {
                		perDefM = item[18];
                	} else {
                		bonus += "    <bonus id=\""+item[10]+"\" value=\""+item[18]+"\"/>\n";
                		b++;
                	}
                }
                if (Integer.parseInt(item[11]) != 0) {
                	if (Integer.parseInt(item[11]) == 1 || Integer.parseInt(item[11]) == 17 || Integer.parseInt(item[11]) == 26) {
                		atk = item[19];
                	} else if (Integer.parseInt(item[11]) == 2) {
                		def = item[19];
                	} else if (Integer.parseInt(item[11]) == 256) {
                		perDef = item[19];
                	} else if (Integer.parseInt(item[11]) == 3) {
                		element = item[19];
                	} else if (Integer.parseInt(item[11]) == 5) {
                		atkM = item[19];
                	} else if (Integer.parseInt(item[11]) == 6) {
                		defM = item[19];
                	} else if (Integer.parseInt(item[11]) == 257) {
                		perDefM = item[19];
                	} else {
                		bonus += "    <bonus id=\""+item[11]+"\" value=\""+item[19]+"\"/>\n";
                		b++;
                	}
                }
                if (Integer.parseInt(item[12]) != 0) {
                	if (Integer.parseInt(item[12]) == 1 || Integer.parseInt(item[12]) == 17 || Integer.parseInt(item[12]) == 26) {
                		atk = item[20];
                	} else if (Integer.parseInt(item[12]) == 2) {
                		def = item[20];
                	} else if (Integer.parseInt(item[12]) == 256) {
                		perDef = item[20];
                	} else if (Integer.parseInt(item[12]) == 3) {
                		element = item[20];
                	} else if (Integer.parseInt(item[12]) == 5) {
                		atkM = item[20];
                	} else if (Integer.parseInt(item[12]) == 6) {
                		defM = item[20];
                	} else if (Integer.parseInt(item[12]) == 257) {
                		perDefM = item[20];
                	} else {
                		bonus += "    <bonus id=\""+item[12]+"\" value=\""+item[20]+"\"/>\n";
                		b++;
                	}
                }
                if (Integer.parseInt(item[13]) != 0) {
                	if (Integer.parseInt(item[13]) == 1 || Integer.parseInt(item[13]) == 17 || Integer.parseInt(item[13]) == 26) {
                		atk = item[21];
                	} else if (Integer.parseInt(item[13]) == 2) {
                		def = item[21];
                	} else if (Integer.parseInt(item[13]) == 256) {
                		perDef = item[21];
                	} else if (Integer.parseInt(item[13]) == 3) {
                		element = item[21];
                	} else if (Integer.parseInt(item[13]) == 5) {
                		atkM = item[21];
                	} else if (Integer.parseInt(item[13]) == 6) {
                		defM = item[21];
                	} else if (Integer.parseInt(item[13]) == 257) {
                		perDefM = item[21];
                	} else {
                		bonus += "    <bonus id=\""+item[13]+"\" value=\""+item[21]+"\"/>\n";
                		b++;
                	}
                }
                if (Integer.parseInt(item[14]) != 0) {
                	if (Integer.parseInt(item[14]) == 1 || Integer.parseInt(item[14]) == 17 || Integer.parseInt(item[14]) == 26) {
                		atk = item[22];
                	} else if (Integer.parseInt(item[14]) == 2) {
                		def = item[22];
                	} else if (Integer.parseInt(item[14]) == 256) {
                		perDef = item[22];
                	} else if (Integer.parseInt(item[14]) == 3) {
                		element = item[22];
                	} else if (Integer.parseInt(item[14]) == 5) {
                		atkM = item[22];
                	} else if (Integer.parseInt(item[14]) == 6) {
                		defM = item[22];
                	} else if (Integer.parseInt(item[14]) == 257) {
                		perDefM = item[22];
                	} else {
                		bonus += "    <bonus id=\""+item[14]+"\" value=\""+item[22]+"\"/>\n";
                		b++;
                	}
                }
                xml.append("atk=\""+ atk +"\" ");
                xml.append("def=\""+ def +"\" ");
                xml.append("perDef=\""+ perDef +"\" ");
                xml.append("element=\""+ element +"\" ");
                xml.append("atkM=\""+ atkM +"\" ");
                xml.append("defM=\""+ defM +"\" ");
                xml.append("perDefM=\""+ perDefM +"\" ");
                String skills = "";
                int j = 0;
                int k = 0;
                for(j = 1,k=0; j <= Integer.parseInt(item[25]); j++,k++) {
                	skills += "    <skill id=\""+item[25+j+k]+"\" lvl=\""+item[25+j+k+1]+"\"/>\n";
                }
                if (b == 0 && k == 0) {
                    xml.append("/>\n");                	
                } else {
                	xml.append(">\n");
                	xml.append(bonus);
                	xml.append(skills);
                	xml.append("</e>\n");
                }
            }
        }
        xml.append("</equipment>\n");
        //System.out.println(xml);
        
        FileWriter xmlFile = new FileWriter("C:\\Projetos\\rok\\RagnaChart\\rosim\\dataitem.xml");
        xmlFile.write(xml.toString());
        reader.close();
        xmlFile.close();
    }
	
	public static void main(String[] args) {
		try {
			geraCard();
        } catch (Exception e) {
            e.printStackTrace();
        }
	}
}
